package com.ruoyi.project.xcx.user.service.impl;

import java.util.Date;
import java.util.List;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.project.xcx.user.mapper.XcxUserMapper;
import com.ruoyi.project.xcx.user.domain.XcxUser;
import com.ruoyi.project.xcx.user.service.IXcxUserService;
import com.ruoyi.common.utils.text.Convert;

/**
 * 小程序用户Service业务层处理
 * 
 * @author ruoyi
 * @date 2020-03-10
 */
@Service
@Slf4j
public class XcxUserServiceImpl implements IXcxUserService
{
    @Autowired
    private XcxUserMapper xcxUserMapper;

    @Override
    public XcxUser login(XcxUser user) {
        List<XcxUser> userList = xcxUserMapper.selectXcxUserList(user);
        XcxUser addUser = null;
        if(userList.isEmpty()){
            // 用户不存在，那么新增用户
            addUser = new XcxUser();
            addUser.setOpenId(user.getOpenId());
            addUser.setSource(user.getSource());
            addUser.setInsertDate(new Date());
            xcxUserMapper.insertXcxUser(addUser);
            log.info("新增用户。{}", addUser.getOpenId());
        }else{
            addUser = userList.get(0);
        }
        return addUser;
    }

    /**
     * 查询小程序用户
     * 
     * @param id 小程序用户ID
     * @return 小程序用户
     */
    @Override
    public XcxUser selectXcxUserById(Long id)
    {
        return xcxUserMapper.selectXcxUserById(id);
    }

    /**
     * 查询小程序用户列表
     * 
     * @param xcxUser 小程序用户
     * @return 小程序用户
     */
    @Override
    public List<XcxUser> selectXcxUserList(XcxUser xcxUser)
    {
        return xcxUserMapper.selectXcxUserList(xcxUser);
    }

    /**
     * 新增小程序用户
     * 
     * @param xcxUser 小程序用户
     * @return 结果
     */
    @Override
    public int insertXcxUser(XcxUser xcxUser)
    {
        return xcxUserMapper.insertXcxUser(xcxUser);
    }

    /**
     * 修改小程序用户
     * 
     * @param xcxUser 小程序用户
     * @return 结果
     */
    @Override
    public int updateXcxUser(XcxUser xcxUser)
    {
        return xcxUserMapper.updateXcxUser(xcxUser);
    }

    /**
     * 删除小程序用户对象
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteXcxUserByIds(String ids)
    {
        return xcxUserMapper.deleteXcxUserByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除小程序用户信息
     * 
     * @param id 小程序用户ID
     * @return 结果
     */
    @Override
    public int deleteXcxUserById(Long id)
    {
        return xcxUserMapper.deleteXcxUserById(id);
    }
}
